\chapter{竜と戯れる}
\section{起動}
テストを兼ねて少し弄ってみましょう。ここでは CDragon を使います。
\begin{lstlisting}
$ cdragon -i
\end{lstlisting}
で起動してください。LANG 環境変数が日本語であり、端末が日本語に対応していれば
\begin{lstlisting}
竜の世界へようこそ! 我は "C"Dragon のバージョン 0.0.1 だ。よろしくな。
Copyright (C) 2010 Dragon Script Developing Team.

Dragon Script は GPL3 でライセンスされていて無保証で提供していて、
再配布もきちんとルールを守れば、自由にして構わないぞ。
ライセンス情報が欲しければ「ライセンス情報を表示しろ」と、
再配布条件を知りたければ「再配布条件を表示しろ」と命令してくれ。

本を読んでくるからちょっと待ってな。
よし、 OK だ。待たせたな。

竜: 竜王殿、ご命令をどうぞ。
命令(		1)> 
\end{lstlisting}
のように表示されます。文字化けした場合は、LANG 環境変数の値が間違っているか、
端末の文字コード変更機能で、正しい文字コードを選択してください。日本語に対応
していない端末を利用している場合は、LANG 環境変数を英語または \texttt{C} に
してください。英語で表示されます。

超人の世界なのでここまで表示されるのに時間がかかるとは思いませんが、ここまで
表示されたら入力待ちの状態になっています。なお、この「\indy{ほん}{本}」とは
基本的なライブラリのことを指しています。

さて、命令は日本語で入力するわけなのですが、日本語入力できる端末を利用してい
ますか? そうでない場合は、起動してからでも変更することができます。
\footnote{\texttt{>} のあとを入力してください。}
\begin{lstlisting}
命令(		1)> LANG=en_US.utf8
\end{lstlisting}
\begin{lstlisting}
命令(		1)> LANG=C
\end{lstlisting}
などとするとがらっとすべて英語になります。なお、本の読み直しを行うため、最初に
自動的に読み込まれる本以外を読み込んでいる場合、時間がかかる可能性があります。
英語の命令については英語のドキュメント(\url{spec-en.pdf})をご覧ください。

\section{こんにちは!}
では、命令してみましょう。
\begin{lstlisting}[name=hello]
命令(		1)> 「こんにちは」と言え。
\end{lstlisting}
命令形で書きましたが、これは、
\begin{lstlisting}
命令(		1)> 「こんにちは」と言いなさい。
\end{lstlisting}
\begin{lstlisting}
命令(		1)> 「こんにちは」と言う。
\end{lstlisting}
\begin{lstlisting}
命令(		1)> 「こんにちは」と言ってください。
\end{lstlisting}
\begin{lstlisting}
命令(		1)> 「こんにちは」と言わないと怒るわよ。
\end{lstlisting}
などでも大丈夫です(笑)。
\begin{lstlisting}
命令(		1)> 「○○」と言
\end{lstlisting}
のあと「わ」「い」「う」「え」「お」の何れかが続き、「ない」や「しない」で
終らなければなんでもこの命令と認識してくれるはずです。命令すると、
\begin{lstlisting}[name=hello]
こんにちは
竜: 命令は成功したぜよ。
\end{lstlisting}
と返ってきます。この対話モードでは竜は常に命令が成功か失敗かを、成功なら結果を、
失敗ならその理由も報告します。もし、成功した場合にも報告されるのが嫌ならば、
\begin{lstlisting}
命令(		2)> 黙って作業しろ!
\end{lstlisting}
と命令してやってください。

\section{簡単な計算}
さて、では計算もしてみましょう。詳しくは第\ref{story}部で解説してますので解説は
抜きにします。
\begin{lstlisting}[name=hello]
命令(		2)> 1+1。
竜: 答えは 2 だぜよ。
竜: 命令は成功したぜよ。
\end{lstlisting}
先ほど「黙って作業しろ!」と命令していなければ、このように計算結果を教えてくれます。
この計算結果を使いたければ、
\begin{lstlisting}[name=hello]
命令(		3)> それ+3。
竜: 答えは 5 だぜよ。
竜: 命令は成功したぜよ。
\end{lstlisting}
のように「それ」を使います。これを利用して「黙って作業しろ!」と命令した時も
\begin{lstlisting}
命令(		3)> それと言え。
2
\end{lstlisting}
と命令すれば知ることができます。もっと複雑な計算も正しく処理されることを確認
してください。
\begin{lstlisting}[name=hello]
命令(		4)> (1+5)*6+7/3-(11-5)/2。
竜: 答えは 35 だぜよ。
竜: 命令は成功したぜよ。
\end{lstlisting}
この式は 35 になれば正解です。なぜかというと、整数同士の割算では小数部分を切り捨てて
しまうからです。小数の答えを得たければ割算のどちらかあるいは両方を実数
表記にする必要があります。これも後ほど詳しく解説します。
\begin{lstlisting}[name=hello]
命令(		5)> (1+5)*6+7.0/3.0-(11-5)/2。
竜: 答えは 35.33333 だぜよ。
竜: 命令は成功したぜよ。
\end{lstlisting}

\section{スクリプトファイルを実行}
最後にテキストエディタを用いて、ファイルになったスクリプトを実行させてみましょう。
\begin{lstlisting}[caption=test1.cds,label=test1]
#!cdragon

LANG=ja_JP.UTF8

「こんにちは。」と言え。
「普段は改行して表示されていきます。」と言え。
改行禁止。
「こんにちは。」と言え。
「1+1={1+1}。」と言え。
「改行されていません。」と言え。
改行。
「そのときは手動で改行できます。」と言え。
改行禁止解除。
「ここから改行されます。」と言え。
\end{lstlisting}
実行するには、ファイルのあるディレクトリに行くか、その場で、相対パスないしは絶対パスで
指定します。例えば、次のようにします。
\begin{lstlisting}
$ cdragon test1.cds
\end{lstlisting}
この実行結果は、
\begin{lstlisting}[caption=\ref{test1}の実行結果]
こんにちは。
普段は改行して表示されていきます。
こんにちは。1+1=2。 改行されていません。
そのときは手動で改行できます。
ここから改行されます。
\end{lstlisting}
になります。

それでは、以下のマニュアルや物語を読みつつ、Dragon Script の世界を堪能してください。
